# @Author：silence
# @Email：792245022@qq.com
# @Date：2025/2/6 0:24

"""
ord(str): 返回字符串 Unicode 码值
chr(int): 返回码值对应的字符
"""
# 演示字符串常用操作
str_name = " jack tom mary hsp mono tom jack "
# len(str): 字符串的长度，也就是包含多少个字符
print(f"{str_name} 有 {len(str_name)} 个字符")
print("=" * 100)

# str.replace(old, new, [count]): 返回字符串的副本，其中出现的所有子字符串 old 都将被替换为 new。
# 如果给出了可选参数 count，则只替换 count 次出现
"""
    返回字符串的副本，表示原来的字符串不变，而是返回一个新的字符串
"""
# 需求：将 "jack" 替换成 "杰克"，只替换一个
str_name_new = str_name.replace("jack", "杰克", 1)
print(f"str_names_new = {str_name_new}")
print(f"str_names = {str_name}")
print("=" * 100)

# str.split(sep=None, maxsplit=-1):
# 返回一个由字符串内单词组成的列表，使用 sep 作为分隔字符串。如果给出了 maxsplite，
# 则最多进行 maxsplite 次拆分，列表最多会有 maxsplite + 1 个元素。如果 maxsplite
# 未指定或为 -1，则不限制拆分次数（进行所有可能得拆分）
str_name_split = str_name.split(" ")
print(f"str_names_split 内容是：{str_name_split}")
print("=" * 100)

# str.count(sub): 统计指定字符串在字符串中出现的次数
str_name_count = str_name.count("jack")
print(f"jack 出现的次数为：{str_name_count}")
print("=" * 100)

# str.index(sub): 从字符串中找出指定字符串第一个匹配项的索引位置，没有会报错
str_name_index = str_name.index("tom")
print(f"tom 出现的索引位置为：{str_name_index}")

# str.strip([chars]): 返回原字符串的副本，移除其中的前导和末尾字符。 chars 未指定要移除字符的字符串
# 这个方法，通常可以用于出去前后的空格，或者去掉指定的某些字符
str_name_strip = str_name.strip()
print(f"str_name_strip = {str_name_strip}")

# str.lower(): 返回原字符串小写的副本，不影响原来的字符
# str.upper(): 返回原字符串大写的副本，不影响原来的字符